Termination w.r.t. Q of the following Term Rewriting System could be proven:
Q restricted rewrite system:
The TRS R consists of the following rules:
active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt)) → mark(tt)
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNeList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt, P)) → mark(U72(isPal(P)))
active(U72(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(isList(V)) → mark(U11(isNeList(V)))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(isList(V1), V2))
active(isNeList(V)) → mark(U31(isQid(V)))
active(isNeList(__(V1, V2))) → mark(U41(isList(V1), V2))
active(isNeList(__(V1, V2))) → mark(U51(isNeList(V1), V2))
active(isNePal(V)) → mark(U61(isQid(V)))
active(isNePal(__(I, __(P, I)))) → mark(U71(isQid(I), P))
active(isPal(V)) → mark(U81(isNePal(V)))
active(isPal(nil)) → mark(tt)
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
mark(__(X1, X2)) → active(__(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNeList(X)) → active(isNeList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(isPal(X)) → active(isPal(X))
mark(U81(X)) → active(U81(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(isNePal(X)) → active(isNePal(X))
mark(a) → active(a)
mark(e) → active(e)
mark(i) → active(i)
mark(o) → active(o)
mark(u) → active(u)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt)) → mark(tt)
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNeList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt, P)) → mark(U72(isPal(P)))
active(U72(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(isList(V)) → mark(U11(isNeList(V)))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(isList(V1), V2))
active(isNeList(V)) → mark(U31(isQid(V)))
active(isNeList(__(V1, V2))) → mark(U41(isList(V1), V2))
active(isNeList(__(V1, V2))) → mark(U51(isNeList(V1), V2))
active(isNePal(V)) → mark(U61(isQid(V)))
active(isNePal(__(I, __(P, I)))) → mark(U71(isQid(I), P))
active(isPal(V)) → mark(U81(isNePal(V)))
active(isPal(nil)) → mark(tt)
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
mark(__(X1, X2)) → active(__(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNeList(X)) → active(isNeList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(isPal(X)) → active(isPal(X))
mark(U81(X)) → active(U81(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(isNePal(X)) → active(isNePal(X))
mark(a) → active(a)
mark(e) → active(e)
mark(i) → active(i)
mark(o) → active(o)
mark(u) → active(u)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt)) → mark(tt)
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNeList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt, P)) → mark(U72(isPal(P)))
active(U72(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(isList(V)) → mark(U11(isNeList(V)))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(isList(V1), V2))
active(isNeList(V)) → mark(U31(isQid(V)))
active(isNeList(__(V1, V2))) → mark(U41(isList(V1), V2))
active(isNeList(__(V1, V2))) → mark(U51(isNeList(V1), V2))
active(isNePal(V)) → mark(U61(isQid(V)))
active(isNePal(__(I, __(P, I)))) → mark(U71(isQid(I), P))
active(isPal(V)) → mark(U81(isNePal(V)))
active(isPal(nil)) → mark(tt)
active(isQid(a)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
active(isQid(u)) → mark(tt)
mark(__(X1, X2)) → active(__(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNeList(X)) → active(isNeList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(isPal(X)) → active(isPal(X))
mark(U81(X)) → active(U81(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(isNePal(X)) → active(isNePal(X))
mark(a) → active(a)
mark(e) → active(e)
mark(i) → active(i)
mark(o) → active(o)
mark(u) → active(u)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
active(isQid(a)) → mark(tt)
active(isQid(u)) → mark(tt)
Used ordering:
Polynomial interpretation [25]:
POL(U11(x1)) = x1
POL(U21(x1, x2)) = x1 + 2·x2
POL(U22(x1)) = x1
POL(U31(x1)) = x1
POL(U41(x1, x2)) = x1 + 2·x2
POL(U42(x1)) = x1
POL(U51(x1, x2)) = 2·x1 + 2·x2
POL(U52(x1)) = x1
POL(U61(x1)) = x1
POL(U71(x1, x2)) = 2·x1 + 2·x2
POL(U72(x1)) = x1
POL(U81(x1)) = 2·x1
POL(__(x1, x2)) = 2·x1 + x2
POL(a) = 2
POL(active(x1)) = x1
POL(e) = 0
POL(i) = 0
POL(isList(x1)) = 2·x1
POL(isNeList(x1)) = 2·x1
POL(isNePal(x1)) = x1
POL(isPal(x1)) = 2·x1
POL(isQid(x1)) = x1
POL(mark(x1)) = x1
POL(nil) = 0
POL(o) = 0
POL(tt) = 0
POL(u) = 1
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt)) → mark(tt)
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNeList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt, P)) → mark(U72(isPal(P)))
active(U72(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(isList(V)) → mark(U11(isNeList(V)))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(isList(V1), V2))
active(isNeList(V)) → mark(U31(isQid(V)))
active(isNeList(__(V1, V2))) → mark(U41(isList(V1), V2))
active(isNeList(__(V1, V2))) → mark(U51(isNeList(V1), V2))
active(isNePal(V)) → mark(U61(isQid(V)))
active(isNePal(__(I, __(P, I)))) → mark(U71(isQid(I), P))
active(isPal(V)) → mark(U81(isNePal(V)))
active(isPal(nil)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
mark(__(X1, X2)) → active(__(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNeList(X)) → active(isNeList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(isPal(X)) → active(isPal(X))
mark(U81(X)) → active(U81(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(isNePal(X)) → active(isNePal(X))
mark(a) → active(a)
mark(e) → active(e)
mark(i) → active(i)
mark(o) → active(o)
mark(u) → active(u)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U11(tt)) → mark(tt)
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U41(tt, V2)) → mark(U42(isNeList(V2)))
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U71(tt, P)) → mark(U72(isPal(P)))
active(U72(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(isList(V)) → mark(U11(isNeList(V)))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(isList(V1), V2))
active(isNeList(V)) → mark(U31(isQid(V)))
active(isNeList(__(V1, V2))) → mark(U41(isList(V1), V2))
active(isNeList(__(V1, V2))) → mark(U51(isNeList(V1), V2))
active(isNePal(V)) → mark(U61(isQid(V)))
active(isNePal(__(I, __(P, I)))) → mark(U71(isQid(I), P))
active(isPal(V)) → mark(U81(isNePal(V)))
active(isPal(nil)) → mark(tt)
active(isQid(e)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
mark(__(X1, X2)) → active(__(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNeList(X)) → active(isNeList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(isPal(X)) → active(isPal(X))
mark(U81(X)) → active(U81(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(isNePal(X)) → active(isNePal(X))
mark(a) → active(a)
mark(e) → active(e)
mark(i) → active(i)
mark(o) → active(o)
mark(u) → active(u)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
active(__(__(X, Y), Z)) → mark(__(X, __(Y, Z)))
active(__(X, nil)) → mark(X)
active(__(nil, X)) → mark(X)
active(U41(tt, V2)) → mark(U42(isNeList(V2)))
active(U71(tt, P)) → mark(U72(isPal(P)))
active(isList(nil)) → mark(tt)
active(isList(__(V1, V2))) → mark(U21(isList(V1), V2))
active(isNeList(__(V1, V2))) → mark(U51(isNeList(V1), V2))
active(isNePal(__(I, __(P, I)))) → mark(U71(isQid(I), P))
active(isPal(nil)) → mark(tt)
active(isQid(i)) → mark(tt)
active(isQid(o)) → mark(tt)
Used ordering:
Polynomial interpretation [25]:
POL(U11(x1)) = x1
POL(U21(x1, x2)) = 2·x1 + x2
POL(U22(x1)) = x1
POL(U31(x1)) = x1
POL(U41(x1, x2)) = 1 + 2·x1 + x2
POL(U42(x1)) = x1
POL(U51(x1, x2)) = 2·x1 + x2
POL(U52(x1)) = x1
POL(U61(x1)) = x1
POL(U71(x1, x2)) = 1 + x1 + x2
POL(U72(x1)) = x1
POL(U81(x1)) = x1
POL(__(x1, x2)) = 1 + 2·x1 + x2
POL(a) = 2
POL(active(x1)) = x1
POL(e) = 0
POL(i) = 2
POL(isList(x1)) = x1
POL(isNeList(x1)) = x1
POL(isNePal(x1)) = x1
POL(isPal(x1)) = x1
POL(isQid(x1)) = x1
POL(mark(x1)) = x1
POL(nil) = 1
POL(o) = 1
POL(tt) = 0
POL(u) = 1
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
active(U11(tt)) → mark(tt)
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U72(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(isList(V)) → mark(U11(isNeList(V)))
active(isNeList(V)) → mark(U31(isQid(V)))
active(isNeList(__(V1, V2))) → mark(U41(isList(V1), V2))
active(isNePal(V)) → mark(U61(isQid(V)))
active(isPal(V)) → mark(U81(isNePal(V)))
active(isQid(e)) → mark(tt)
mark(__(X1, X2)) → active(__(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNeList(X)) → active(isNeList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(isPal(X)) → active(isPal(X))
mark(U81(X)) → active(U81(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(isNePal(X)) → active(isNePal(X))
mark(a) → active(a)
mark(e) → active(e)
mark(i) → active(i)
mark(o) → active(o)
mark(u) → active(u)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
active(U11(tt)) → mark(tt)
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U42(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U72(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(isList(V)) → mark(U11(isNeList(V)))
active(isNeList(V)) → mark(U31(isQid(V)))
active(isNeList(__(V1, V2))) → mark(U41(isList(V1), V2))
active(isNePal(V)) → mark(U61(isQid(V)))
active(isPal(V)) → mark(U81(isNePal(V)))
active(isQid(e)) → mark(tt)
mark(__(X1, X2)) → active(__(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNeList(X)) → active(isNeList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(isPal(X)) → active(isPal(X))
mark(U81(X)) → active(U81(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(isNePal(X)) → active(isNePal(X))
mark(a) → active(a)
mark(e) → active(e)
mark(i) → active(i)
mark(o) → active(o)
mark(u) → active(u)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
active(U42(tt)) → mark(tt)
active(isList(V)) → mark(U11(isNeList(V)))
active(isPal(V)) → mark(U81(isNePal(V)))
active(isQid(e)) → mark(tt)
Used ordering:
Polynomial interpretation [25]:
POL(U11(x1)) = x1
POL(U21(x1, x2)) = 1 + x1 + 2·x2
POL(U22(x1)) = x1
POL(U31(x1)) = x1
POL(U41(x1, x2)) = 2·x1 + x2
POL(U42(x1)) = 2 + 2·x1
POL(U51(x1, x2)) = 1 + x1 + 2·x2
POL(U52(x1)) = x1
POL(U61(x1)) = x1
POL(U71(x1, x2)) = 2·x1 + 2·x2
POL(U72(x1)) = 2·x1
POL(U81(x1)) = x1
POL(__(x1, x2)) = 1 + 2·x1 + x2
POL(a) = 2
POL(active(x1)) = x1
POL(e) = 1
POL(i) = 0
POL(isList(x1)) = 1 + 2·x1
POL(isNeList(x1)) = 2·x1
POL(isNePal(x1)) = 2·x1
POL(isPal(x1)) = 1 + 2·x1
POL(isQid(x1)) = 2·x1
POL(mark(x1)) = x1
POL(nil) = 1
POL(o) = 0
POL(tt) = 0
POL(u) = 2
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
active(U11(tt)) → mark(tt)
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U72(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(isNeList(V)) → mark(U31(isQid(V)))
active(isNeList(__(V1, V2))) → mark(U41(isList(V1), V2))
active(isNePal(V)) → mark(U61(isQid(V)))
mark(__(X1, X2)) → active(__(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNeList(X)) → active(isNeList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(isPal(X)) → active(isPal(X))
mark(U81(X)) → active(U81(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(isNePal(X)) → active(isNePal(X))
mark(a) → active(a)
mark(e) → active(e)
mark(i) → active(i)
mark(o) → active(o)
mark(u) → active(u)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
active(U11(tt)) → mark(tt)
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isList(V2)))
active(U52(tt)) → mark(tt)
active(U61(tt)) → mark(tt)
active(U72(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(isNeList(V)) → mark(U31(isQid(V)))
active(isNeList(__(V1, V2))) → mark(U41(isList(V1), V2))
active(isNePal(V)) → mark(U61(isQid(V)))
mark(__(X1, X2)) → active(__(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U11(X)) → active(U11(mark(X)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNeList(X)) → active(isNeList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U52(X)) → active(U52(mark(X)))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(isPal(X)) → active(isPal(X))
mark(U81(X)) → active(U81(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(isNePal(X)) → active(isNePal(X))
mark(a) → active(a)
mark(e) → active(e)
mark(i) → active(i)
mark(o) → active(o)
mark(u) → active(u)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
active(U11(tt)) → mark(tt)
active(U51(tt, V2)) → mark(U52(isList(V2)))
active(U61(tt)) → mark(tt)
active(U72(tt)) → mark(tt)
active(U81(tt)) → mark(tt)
active(isNeList(V)) → mark(U31(isQid(V)))
active(isNeList(__(V1, V2))) → mark(U41(isList(V1), V2))
mark(__(X1, X2)) → active(__(mark(X1), mark(X2)))
mark(nil) → active(nil)
mark(U11(X)) → active(U11(mark(X)))
mark(U41(X1, X2)) → active(U41(mark(X1), X2))
mark(U42(X)) → active(U42(mark(X)))
mark(isNeList(X)) → active(isNeList(X))
mark(U51(X1, X2)) → active(U51(mark(X1), X2))
mark(U61(X)) → active(U61(mark(X)))
mark(U71(X1, X2)) → active(U71(mark(X1), X2))
mark(U72(X)) → active(U72(mark(X)))
mark(isPal(X)) → active(isPal(X))
mark(U81(X)) → active(U81(mark(X)))
mark(isNePal(X)) → active(isNePal(X))
mark(e) → active(e)
mark(i) → active(i)
mark(o) → active(o)
mark(u) → active(u)
Used ordering:
Polynomial interpretation [25]:
POL(U11(x1)) = 1 + x1
POL(U21(x1, x2)) = 2·x1 + 2·x2
POL(U22(x1)) = x1
POL(U31(x1)) = x1
POL(U41(x1, x2)) = 1 + x1 + 2·x2
POL(U42(x1)) = 1 + 2·x1
POL(U51(x1, x2)) = 1 + x1 + 2·x2
POL(U52(x1)) = x1
POL(U61(x1)) = 1 + x1
POL(U71(x1, x2)) = 1 + x1 + 2·x2
POL(U72(x1)) = 1 + 2·x1
POL(U81(x1)) = 1 + x1
POL(__(x1, x2)) = 1 + 2·x1 + 2·x2
POL(a) = 0
POL(active(x1)) = x1
POL(e) = 1
POL(i) = 2
POL(isList(x1)) = x1
POL(isNeList(x1)) = 1 + 2·x1
POL(isNePal(x1)) = 2 + 2·x1
POL(isPal(x1)) = 1 + x1
POL(isQid(x1)) = x1
POL(mark(x1)) = 2·x1
POL(nil) = 2
POL(o) = 2
POL(tt) = 0
POL(u) = 1
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U52(tt)) → mark(tt)
active(isNePal(V)) → mark(U61(isQid(V)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U52(X)) → active(U52(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(a) → active(a)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U52(tt)) → mark(tt)
active(isNePal(V)) → mark(U61(isQid(V)))
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U52(X)) → active(U52(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(a) → active(a)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
active(U21(tt, V2)) → mark(U22(isList(V2)))
active(isNePal(V)) → mark(U61(isQid(V)))
Used ordering:
Polynomial interpretation [25]:
POL(U11(x1)) = x1
POL(U21(x1, x2)) = 1 + 2·x1 + 2·x2
POL(U22(x1)) = 2·x1
POL(U31(x1)) = x1
POL(U41(x1, x2)) = 2·x1 + 2·x2
POL(U42(x1)) = x1
POL(U51(x1, x2)) = 2·x1 + x2
POL(U52(x1)) = x1
POL(U61(x1)) = 2·x1
POL(U71(x1, x2)) = 2·x1 + 2·x2
POL(U72(x1)) = x1
POL(U81(x1)) = 2·x1
POL(__(x1, x2)) = x1 + 2·x2
POL(a) = 0
POL(active(x1)) = x1
POL(isList(x1)) = x1
POL(isNeList(x1)) = 2·x1
POL(isNePal(x1)) = 1 + 2·x1
POL(isPal(x1)) = 2·x1
POL(isQid(x1)) = x1
POL(mark(x1)) = x1
POL(tt) = 0
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U52(tt)) → mark(tt)
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U52(X)) → active(U52(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(a) → active(a)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U52(tt)) → mark(tt)
mark(tt) → active(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U52(X)) → active(U52(mark(X)))
mark(isQid(X)) → active(isQid(X))
mark(a) → active(a)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
mark(tt) → active(tt)
mark(a) → active(a)
__(mark(X1), X2) → __(X1, X2)
__(X1, mark(X2)) → __(X1, X2)
__(active(X1), X2) → __(X1, X2)
__(X1, active(X2)) → __(X1, X2)
U11(mark(X)) → U11(X)
U11(active(X)) → U11(X)
U21(mark(X1), X2) → U21(X1, X2)
U21(X1, mark(X2)) → U21(X1, X2)
U21(active(X1), X2) → U21(X1, X2)
U21(X1, active(X2)) → U21(X1, X2)
U22(mark(X)) → U22(X)
U22(active(X)) → U22(X)
isList(mark(X)) → isList(X)
isList(active(X)) → isList(X)
U31(mark(X)) → U31(X)
U31(active(X)) → U31(X)
U41(mark(X1), X2) → U41(X1, X2)
U41(X1, mark(X2)) → U41(X1, X2)
U41(active(X1), X2) → U41(X1, X2)
U41(X1, active(X2)) → U41(X1, X2)
U42(mark(X)) → U42(X)
U42(active(X)) → U42(X)
isNeList(mark(X)) → isNeList(X)
isNeList(active(X)) → isNeList(X)
U51(mark(X1), X2) → U51(X1, X2)
U51(X1, mark(X2)) → U51(X1, X2)
U51(active(X1), X2) → U51(X1, X2)
U51(X1, active(X2)) → U51(X1, X2)
U52(mark(X)) → U52(X)
U52(active(X)) → U52(X)
U61(mark(X)) → U61(X)
U61(active(X)) → U61(X)
U71(mark(X1), X2) → U71(X1, X2)
U71(X1, mark(X2)) → U71(X1, X2)
U71(active(X1), X2) → U71(X1, X2)
U71(X1, active(X2)) → U71(X1, X2)
U72(mark(X)) → U72(X)
U72(active(X)) → U72(X)
isPal(mark(X)) → isPal(X)
isPal(active(X)) → isPal(X)
U81(mark(X)) → U81(X)
U81(active(X)) → U81(X)
isQid(mark(X)) → isQid(X)
isQid(active(X)) → isQid(X)
isNePal(mark(X)) → isNePal(X)
isNePal(active(X)) → isNePal(X)
Used ordering:
Polynomial interpretation [25]:
POL(U11(x1)) = x1
POL(U21(x1, x2)) = 2 + 2·x1 + x2
POL(U22(x1)) = 1 + x1
POL(U31(x1)) = 1 + x1
POL(U41(x1, x2)) = x1 + x2
POL(U42(x1)) = x1
POL(U51(x1, x2)) = x1 + x2
POL(U52(x1)) = 1 + x1
POL(U61(x1)) = x1
POL(U71(x1, x2)) = x1 + x2
POL(U72(x1)) = x1
POL(U81(x1)) = x1
POL(__(x1, x2)) = x1 + x2
POL(a) = 1
POL(active(x1)) = 1 + x1
POL(isList(x1)) = x1
POL(isNeList(x1)) = x1
POL(isNePal(x1)) = x1
POL(isPal(x1)) = x1
POL(isQid(x1)) = x1
POL(mark(x1)) = 1 + 2·x1
POL(tt) = 1
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U52(tt)) → mark(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U52(X)) → active(U52(mark(X)))
mark(isQid(X)) → active(isQid(X))
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
active(U22(tt)) → mark(tt)
active(U31(tt)) → mark(tt)
active(U52(tt)) → mark(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U52(X)) → active(U52(mark(X)))
mark(isQid(X)) → active(isQid(X))
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
active(U31(tt)) → mark(tt)
mark(U21(X1, X2)) → active(U21(mark(X1), X2))
mark(U22(X)) → active(U22(mark(X)))
mark(isList(X)) → active(isList(X))
mark(U31(X)) → active(U31(mark(X)))
mark(U52(X)) → active(U52(mark(X)))
mark(isQid(X)) → active(isQid(X))
Used ordering:
Polynomial interpretation [25]:
POL(U21(x1, x2)) = 2 + x1 + 2·x2
POL(U22(x1)) = 2 + x1
POL(U31(x1)) = 1 + 2·x1
POL(U52(x1)) = 2 + x1
POL(active(x1)) = x1
POL(isList(x1)) = 1 + 2·x1
POL(isQid(x1)) = 2 + x1
POL(mark(x1)) = 2·x1
POL(tt) = 2
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
Q restricted rewrite system:
The TRS R consists of the following rules:
active(U22(tt)) → mark(tt)
active(U52(tt)) → mark(tt)
Q is empty.
The following Q TRS is given: Q restricted rewrite system:
The TRS R consists of the following rules:
active(U22(tt)) → mark(tt)
active(U52(tt)) → mark(tt)
Q is empty.
The following rules can be removed by the rule removal processor [15] because they are oriented strictly by a polynomial ordering:
active(U22(tt)) → mark(tt)
active(U52(tt)) → mark(tt)
Used ordering:
Polynomial interpretation [25]:
POL(U22(x1)) = 2 + 2·x1
POL(U52(x1)) = 2 + 2·x1
POL(active(x1)) = 2·x1
POL(mark(x1)) = 2 + x1
POL(tt) = 1
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RRRPoloQTRSProof
↳ QTRS
↳ RisEmptyProof
Q restricted rewrite system:
R is empty.
Q is empty.
The TRS R is empty. Hence, termination is trivially proven.